package com.ruoyi.iot.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * 联动规则对象 iot_rule
 *
 * @author ruoyi
 * @date 2025-03-28
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class IotRule extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 规则id
     */
    private Long ruleId;

    /**
     * 编号
     */
    @Excel(name = "编号")
    private String code;

    /**
     * 规则名称
     */
    @Excel(name = "规则名称")
    private String name;

    /**
     * 生效时间类型（always:一直生效；appoint:指定时间）
     */
    @Excel(name = "生效时间类型")
    private String takeEffectType;

    /**
     * 生效时间范围（格式：hh:mm至hh:mm）
     */
    @Excel(name = "生效时间范围")
    private String takeEffectTime;

    /**
     * 生效日期范围（格式: yyyy-MM-dd至yyyy-MM-dd）
     */
    @Excel(name = "生效日期范围")
    private String effectiveDate;

    /**
     * 生效日期集合：周一，周二周三，周四，周五，周六，周日
     */
    @Excel(name = "生效日期集合：周一，周二，周三，周四，周五，周六，周日")
    private String takeEffectWeeks;

    /**
     * 触发类型（time:时间触发；device：设备触发）
     */
    @Excel(name = "触发类型", readConverterExp = "time:时间触发；device：设备触发")
    private String triggerType;

    /**
     * 运行状态(stop:停止；run:运行)
     */
    @Excel(name = "运行状态(stop:停止；run:运行)")
    private String runState;

    /**
     * 来源
     */

    @Excel(name = "来源")
    private String sourceType;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;
    /**
     * 触发器
     */
    @TableField(exist = false)
    private IotRulesTrigger iotRulesTrigger;

    /**
     * 触发动作
     */
    @TableField(exist = false)
    private List<IotRulesAction> actions;
}
